/**
 * customerlog服务
 *
 * @author sxf
 * @email sxf02615@163.com
 * @date 2025/1/15
 */
package com.sxf.crm.service;

import com.sxf.crm.dto.CustomerLogDTO;
import com.sxf.crm.entity.CustomerLog;
import com.sxf.crm.entity.Customer;
import com.sxf.crm.entity.User;
import com.sxf.crm.entity.Department;
import com.sxf.crm.entity.Contact;

import java.util.List;

public interface CustomerLogService {
    
    CustomerLog logCreate(Customer customer, User operator);
    
    CustomerLog logUpdate(Customer customer, User operator, String details);
    
    CustomerLog logStatusChange(Customer customer, User operator, String statusBefore, String statusAfter);
    
    CustomerLog logApprove(Customer customer, User operator, String comment);
    
    CustomerLog logReject(Customer customer, User operator, String comment);
    
    CustomerLog logDepartmentAdd(Customer customer, User operator, Department department, User sales);
    
    CustomerLog logDepartmentRemove(Customer customer, User operator, Department department);
    
    CustomerLog logContactAdd(Customer customer, User operator, Contact contact);
    
    CustomerLog logContactUpdate(Customer customer, User operator, Contact contact, String details);
    
    CustomerLog logContactDelete(Customer customer, User operator, Contact contact);
    
    CustomerLog logDelete(Customer customer, User operator);
    
    List<CustomerLogDTO> getLogsByCustomerId(Long customerId);
    
    List<CustomerLogDTO> getLogsByOperator(Long operatorId);
} 